Marking cross-posted articles as read ensures that you'll never have to read the same article more than once. Unless, of course, somebody has posted it to several groups separately. Posting the same article to several groups (not cross-posting) is called spamming, and you are by law required to send nasty-grams to anyone who perpetrates such a heinous crime.
Remember: Cross-posting is kinda ok, but posting the same
article separately to several groups is not. Massive
cross-posting (aka. velveeta) is to be avoided at all
costs, and you can even use the
gnus-summary-mail-crosspost-complaint command to
complain about excessive crossposting (see Summary Mail
Commands).
One thing that may
cause Gnus to not do the cross-posting thing correctly is if you
use an NNTP server that supports xover (which is very nice, because it speeds things
up considerably) which does not include the Xref
header in its NOV lines. This is Evil, but all
too common, alas, alack. Gnus tries to Do The Right Thing even
with xover by registering the
Xref lines of all articles you actually read, but if
you kill the articles, or just mark them as read without reading
them, Gnus will not get a chance to snoop the Xref
lines out of these articles, and will be unable to use the cross
reference mechanism.
To check whether your
NNTP server includes the Xref
header in its overview files, try ‘telnet your.nntp.server nntp’,
‘MODE READER’
on inn servers, and then say
‘LIST
overview.fmt’. This may not work, but if it
does, and the last line you get does not read
‘Xref:full’,
then you should shout and whine at your news admin until she
includes the Xref header in the overview files.
If you want Gnus to get the Xrefs right all the
time, you have to set nntp-nov-is-evil to
t, which slows things down considerably. Also see
Slow/Expensive Connection.
C'est la vie.
For an alternative approach, see Duplicate Suppression.